package demo;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;

/*
* List 浅拷贝 & 深拷贝
* */
public class ListCopy {
    public static void main(String[] args) {
        List<Integer> list1 = new ArrayList<Integer>();
        list1.add(1);
        list1.add(2);
        list1.add(3);

        //浅拷贝方式1
        List<Integer> list2 = new ArrayList<>();
        list1.set(1,100);

        Consumer<Integer> consumer = list2::add;
        list1.forEach(consumer);

        Consumer<Integer> print = System.out::println;

        list2.forEach(print);
        list1.forEach(print);

        //浅拷贝方式2
        List<Integer> list3 = new ArrayList<Integer>(list1);

        //浅拷贝方式3
        List<Integer> list4 = new ArrayList<>();
        list4.addAll(list1);

        //浅拷贝方式4
        System.arraycopy(list1,0,list2,0,list1.size());
    }
}
